package br.com.tarefas.dao;



import br.com.tarefas.POJO.Projeto;

public class ProjetoDao extends Dao {

	public String inserirProjeto(Projeto projeto) {

		String retorno = "Projeto inserido com sucesso!";

		try {

			abreConexao();

			st = cn.prepareStatement("INSERT INTO TB_PROJETO (numero, nome, descricao, departamento, status, datainicio, datafim) "
					+ "VALUES (?,?,?,?,?,?,?)");

			st.setString(1, projeto.getNumero());
			st.setString(2, projeto.getNome());
			st.setString(3, projeto.getDescricao());
			st.setString(4, projeto.getDepartamento());
			st.setString(5, projeto.getStatus());

			java.sql.Date sqlDate = new java.sql.Date(projeto.getDataInicio().getTime());

			projeto.setDataInicio(sqlDate);

			java.sql.Date sqlDate2 = new java.sql.Date(projeto.getDataFim().getTime());
			
			projeto.setDataFim(sqlDate2);

			st.setDate(6, sqlDate);
			st.setDate(7, sqlDate2);

			st.execute();

		} catch (Exception e) {

			System.out.println(e);
			retorno = e.getMessage();

		} finally {

			try {
				fecharConexao();
			} catch (Exception e) {

				retorno = e.getMessage();
			}
		}

		return retorno;

	}

	public String atualizarProjeto(Projeto projeto) {

		String retorno = "Projeto atualizado com sucesso!";

		try {

			abreConexao();

			st = cn.prepareStatement("UPDATE TB_PROJETO SET NUMERO = ?, NOME = ?, DESCRICAO = ? ,DEPARTAMENTO = ?, STATUS = ?, DATAINICIO = ?, DATAFIM = ?  WHERE NUMERO = ?");
			st.setString(1, projeto.getNumero());
			st.setString(2, projeto.getNome());
			st.setString(3, projeto.getDescricao());
			st.setString(4, projeto.getDepartamento());
			st.setString(5, projeto.getStatus());
			java.sql.Date sqlDate = new java.sql.Date(projeto.getDataInicio()
					.getTime());

			projeto.setDataInicio(sqlDate);

			java.sql.Date sqlDate2 = new java.sql.Date(projeto.getDataFim()
					.getTime());
			projeto.setDataFim(sqlDate2);
			
			st.setDate(6, sqlDate);
			st.setDate(7, sqlDate2);
			
			st.setString(8, projeto.getNumero());

			
			st.executeUpdate();
			
			

		} catch (Exception e) {

			System.out.println(e);
			retorno = e.getMessage();

		} finally {

			try {
				fecharConexao();
			} catch (Exception e) {

				retorno = e.getMessage();
			}
		}

		return retorno;
	}

	public Projeto pesquisarProjeto(String numero) {

		Projeto projeto = new Projeto();

		try {

			abreConexao();
			st = cn.prepareStatement("SELECT * FROM TB_PROJETO WHERE NUMERO= ?");
			st.setString(1, numero);
			rs = st.executeQuery();
			if (rs.next()) {

				projeto.setNumero(rs.getString("numero"));
				projeto.setNome(rs.getString("nome"));
				projeto.setDescricao(rs.getString("descricao"));
				projeto.setDepartamento(rs.getString("departamento"));
				projeto.setStatus(rs.getString("status"));

				projeto.setDataInicio(rs.getDate("datainicio"));
				projeto.setDataFim(rs.getDate("datafim"));
				
			}

		} catch (Exception e) {

			System.out.println(e.getMessage());
		}

		return projeto;
	}

	public String removerProjeto(String numero) {

		String retorno = "Projeto removido com sucesso!";

		try {

			abreConexao();
			st = cn.prepareStatement("DELETE FROM TB_PROJETO WHERE NUMERO = ?");
			st.setString(1, numero);
			st.execute();

		} catch (Exception e) {

			retorno = e.getMessage();
		} finally {

			try {
				fecharConexao();
			} catch (Exception e) {
				retorno = e.getMessage();
			}
		}

		return retorno;

	}

}
